package com.kelvem.saas.workbanch.fsm;

import com.kelvem.saas.workbanch.fsm.container.FsmContainer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

/**
 * InitializingBean 是 Spring 框架中的一个接口，它定义了一个方法 afterPropertiesSet，
 * 用于在 Spring 容器完成 Bean 的属性填充之后执行一些初始化逻辑。这个接口是 Spring 生命周期回调接口之一，用于支持 Bean 的初始化操作。
 *
 * @author kelvem
 */
@Slf4j
@Component
public class FsmInitializingBean implements InitializingBean {
    
    
    @Override
    public void afterPropertiesSet() throws Exception {
        log.info("FsmInitializingBean is called");
        
        // 状态机 最后检查与补充信息
        FsmContainer.finish();
        
        // 打印状态机信息
        FsmContainer.printLog();
    }
}
